00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _dae_solver_functions_hpp_
00022 #define _dae_solver_functions_hpp_
00023
00024 #include <boost/function.hpp>
00025 #include <gridpack/math/matrix.hpp>
00026
00027 namespace gridpack {
00028 namespace math {
00029
00030 template <typename T, typename I = int>
00031 struct DAEBuilder {
00032
00033 typedef VectorT<T, I> VectorType;
00034 typedef MatrixT<T, I> MatrixType;
00035
00036
00037 typedef
00038 boost::function<void (const double& time,
00039 const VectorType& x, const VectorType& xdot,
00040 const double& shift, MatrixType& J)>
00041 Jacobian;
00042
00043
00044 typedef
00045 boost::function<void (const double& time,
00046 const VectorType& x, const VectorType& xdot,
00047 VectorType& F)>
00048 Function;
00049
00050
00051 typedef boost::function<void (const double& time)> StepFunction;
00052
00053 };
00054
00055
00056 }
00057 }
00058
00059 #endif